package datastructure.Tree;

import java.util.List;

/**
 * Description：
 * Author: zhangc
 * Date：2017/6/20 21:11
 */
public interface IBinaryTree<T> {

    // 添加节点到二叉树
    void addNodeToBinaryTree(T value);

    //递归 先序遍历
    List<T> preOrderTraverse();

    // 非递归先序遍历
    List<T> preOrderTraverseNoRecursive();

    // 递归中序遍历
    List<T> inOrderTraverse();

    // 非递归中序遍历
    List<T> inOrderTraverseNoRecursive();

    // 递归后序遍历
    List<T> postOrderTraverse();

    // 非递归后序遍历
    List<T> postOrderTraverseNoRecursive();

    // 层次遍历
    List<T> levelOrder();

}
